package co.edu.usbcali.museo.modelo;
// Generated 08-jun-2011 10:44:21 by Zathura powered by Hibernate Tools 3.2.4.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Cuadro generated by Zathura powered by Hibernate-tools(hbm2java),
 */
@Entity
@Table(name="CUADRO"
    ,schema="MARCELA"
)
public class Cuadro  implements java.io.Serializable {


     private Long codcuadro;
     private Tipoestado tipoestado;
     private Tecnica tecnica;
     private Periodo periodo;
     private Autor autor;
     private String nombrecuadro;
     private Double valoreconomico;
     private Double valorrecaudado;
     private Date fechaentradamuseo;
     private Date fechaultimarestauracion;
     private Set<Sesion> sesions = new HashSet<Sesion>(0);
     private Set<Restauracion> restauracions = new HashSet<Restauracion>(0);

    public Cuadro() {
    }

	
    public Cuadro(Long codcuadro, Tipoestado tipoestado, Tecnica tecnica, Periodo periodo, Autor autor, String nombrecuadro, Double valoreconomico, Double valorrecaudado, Date fechaentradamuseo, Date fechaultimarestauracion) {
        this.codcuadro = codcuadro;
        this.tipoestado = tipoestado;
        this.tecnica = tecnica;
        this.periodo = periodo;
        this.autor = autor;
        this.nombrecuadro = nombrecuadro;
        this.valoreconomico = valoreconomico;
        this.valorrecaudado = valorrecaudado;
        this.fechaentradamuseo = fechaentradamuseo;
        this.fechaultimarestauracion = fechaultimarestauracion;
    }
    public Cuadro(Long codcuadro, Tipoestado tipoestado, Tecnica tecnica, Periodo periodo, Autor autor, String nombrecuadro, Double valoreconomico, Double valorrecaudado, Date fechaentradamuseo, Date fechaultimarestauracion, Set<Sesion> sesions, Set<Restauracion> restauracions) {
       this.codcuadro = codcuadro;
       this.tipoestado = tipoestado;
       this.tecnica = tecnica;
       this.periodo = periodo;
       this.autor = autor;
       this.nombrecuadro = nombrecuadro;
       this.valoreconomico = valoreconomico;
       this.valorrecaudado = valorrecaudado;
       this.fechaentradamuseo = fechaentradamuseo;
       this.fechaultimarestauracion = fechaultimarestauracion;
       this.sesions = sesions;
       this.restauracions = restauracions;
    }
   
     @Id 

    
    @Column(name="CODCUADRO", unique=true, nullable=false, precision=22, scale=0)
    public Long getCodcuadro() {
        return this.codcuadro;
    }
    
    public void setCodcuadro(Long codcuadro) {
        this.codcuadro = codcuadro;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="CODTIPOESTADO", nullable=false)
    public Tipoestado getTipoestado() {
        return this.tipoestado;
    }
    
    public void setTipoestado(Tipoestado tipoestado) {
        this.tipoestado = tipoestado;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="CODTECNICA", nullable=false)
    public Tecnica getTecnica() {
        return this.tecnica;
    }
    
    public void setTecnica(Tecnica tecnica) {
        this.tecnica = tecnica;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="CODPERIODO", nullable=false)
    public Periodo getPeriodo() {
        return this.periodo;
    }
    
    public void setPeriodo(Periodo periodo) {
        this.periodo = periodo;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="CODAUTOR", nullable=false)
    public Autor getAutor() {
        return this.autor;
    }
    
    public void setAutor(Autor autor) {
        this.autor = autor;
    }

    
    @Column(name="NOMBRECUADRO", nullable=false, length=100)
    public String getNombrecuadro() {
        return this.nombrecuadro;
    }
    
    public void setNombrecuadro(String nombrecuadro) {
        this.nombrecuadro = nombrecuadro;
    }

    
    @Column(name="VALORECONOMICO", nullable=false, precision=20, scale=4)
    public Double getValoreconomico() {
        return this.valoreconomico;
    }
    
    public void setValoreconomico(Double valoreconomico) {
        this.valoreconomico = valoreconomico;
    }

    
    @Column(name="VALORRECAUDADO", nullable=false, precision=20, scale=4)
    public Double getValorrecaudado() {
        return this.valorrecaudado;
    }
    
    public void setValorrecaudado(Double valorrecaudado) {
        this.valorrecaudado = valorrecaudado;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FECHAENTRADAMUSEO", nullable=false, length=7)
    public Date getFechaentradamuseo() {
        return this.fechaentradamuseo;
    }
    
    public void setFechaentradamuseo(Date fechaentradamuseo) {
        this.fechaentradamuseo = fechaentradamuseo;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FECHAULTIMARESTAURACION", nullable=false, length=7)
    public Date getFechaultimarestauracion() {
        return this.fechaultimarestauracion;
    }
    
    public void setFechaultimarestauracion(Date fechaultimarestauracion) {
        this.fechaultimarestauracion = fechaultimarestauracion;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="cuadro")
    public Set<Sesion> getSesions() {
        return this.sesions;
    }
    
    public void setSesions(Set<Sesion> sesions) {
        this.sesions = sesions;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="cuadro")
    public Set<Restauracion> getRestauracions() {
        return this.restauracions;
    }
    
    public void setRestauracions(Set<Restauracion> restauracions) {
        this.restauracions = restauracions;
    }




}


